/**
 *
 */
package br.com.werp.regras.geral.visao.taglib;

import br.com.werp.regras.geral.FabricaSubSistema;
import br.com.werp.regras.geral.GerenciadorErros;
import br.com.werp.regras.geral.GerenciamentoPessoa;
import br.com.werp.regras.geral.util.Util;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.PropertyUtils;

import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspWriter;


/**
 * @author Italo Leitao
 *
 *26/10/2006
 */
public class TipoPessoaJuridicaTag extends MasterTag {
    private String juri_pessoa;

    public String getJuri_pessoa() {
        return juri_pessoa;
    }

    public void setJuri_pessoa(String juri_pessoa) {
        this.juri_pessoa = juri_pessoa;
    }

    public void otherDoStartTagOperations() {
        JspWriter out = pageContext.getOut();
        HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();

        try {
            String beanId = "";

            Object bean = request.getAttribute(
                    "org.apache.struts.taglib.html.BEAN");
            Map beanDescribe = BeanUtils.describe(bean);

            if (beanDescribe.containsKey(juri_pessoa)) {
                beanId = ((PropertyUtils.getProperty(bean, juri_pessoa) != null)
                    ? PropertyUtils.getProperty(bean, juri_pessoa).toString() : "");
            }

            GerenciamentoPessoa gerenciamentoPessoa = FabricaSubSistema.getGerenciamentoPessoa();

            int id = Util.zeroOuInt(beanId);

            if (id != 0) {
                Set tipos = gerenciamentoPessoa.verificaTipoPessaoJuridica(id);

                StringBuffer stringBuffer = new StringBuffer();

                for (Iterator iter = tipos.iterator(); iter.hasNext();) {
                    String element = (String) iter.next();

                    stringBuffer.append(element + "|");
                }

                out.println(stringBuffer.toString());
            }
        } catch (Exception e) {
            GerenciadorErros.logarErro(e);
        }
    }
}
